Network devices frequently employ some kind of forwarding scheme to forward packets to various destinations on a network. Such forwarding schemes commonly include maintaining a forwarding database that has forwarding entries. A forwarding entry will typically have at least a destination address and a corresponding port.
In various types of networks, changes in the topology of the network are, for practical purposes, inevitable. When the topology of a network changes, the forwarding entries maintained in the forwarding database of the network device often become invalid. Thus, a typical response to a topology change is to perform an operation that flushes the entries in the forwarding database. In other words, the forwarding entries in the forwarding database are flushed, or deleted on network devices so that forwarding entries can be relearned for various destination addresses to indicate valid forwarding information.
So, when a forwarding database is flushed, all of the entries are invalidated and, thus, any incoming packet will trigger a forwarding database (or FDB) lookup that indicates there is no valid entry for the particular destination address associated with the packet. Accordingly, the packet will then be flooded out on all ports of the network device associated with the particular network or black holed.
One challenge presented by flushing in response to a network topology change is that flushing forwarding entries can take a long time. Also, some forwarding databases may be very large with a large number of media access control (MAC) addresses. Not only can flushing and the subsequent relearning take a long time, but it is often the case that many entries are flushed/deleted unnecessarily. In few conventional systems, software selectively removes the entries one-by-one from the database. In other conventional systems, flushing is a one-size-fits-all solution and does not take into account ports and/or links on the network that are unaffected by the topology change.
Therefore, there is a need to develop a method to intelligently flush entries from a database in response to a logical topology change in a physical network.